package com.hare.system_server.serice;

import com.baomidou.mybatisplus.extension.service.IService;
import com.hare.common.utils.PageUtils;
import com.hare.system_api.dto.SysRoleDTO;
import com.hare.system_api.po.SysRole;
import com.hare.system_api.vo.SysRoleVO;


import java.util.List;

/**
 * @program: Hare
 * @description: 后台管理=>角色 service
 * @author: Hare
 * @create: 2022-11-30 21:01
 * @Version 6.0.1
 **/
public interface SysRoleService extends IService<SysRole> {

    /**
     * 角色管理==> 查询角色信息(分页)
     *
     * @param dto 角色信息
     * @return
     */
    public PageUtils<SysRoleVO> pageRoleInfo(SysRoleDTO dto);

    /**
     * 角色管理==> 查询相关角色信息
     *
     * @param dto
     * @return
     */
    public List<SysRoleVO> roleInfoQuery(SysRoleDTO dto);

    /**
     * 角色管理=> 修改角色状态信息
     *
     * @param dto
     * @return
     */
    public int updateRoleStatus(SysRoleDTO dto);

    /**
     * 角色管理=> 新增 or 修改角色信息
     *
     * @param sysRoleDTO 角色管理=> 新增or修改角色信息
     * @return
     */
    public int insertOrUpdate(SysRoleDTO sysRoleDTO);

    /**
     * 根据角色id删除角色信息
     *
     * @param sysRoleDTO 角色信息
     * @return
     */
    public int deleteRole(SysRoleDTO sysRoleDTO);


    /**
     * 校验角色是否允许操作
     *
     * @param role 角色信息
     */
    public void checkUserAllowed(SysRoleDTO role);


    /**
     * 角色管理=> 根据角色id查找角色信息
     *
     * @param dto 角色信息
     * @return
     */
    public SysRoleVO getRoleInf(SysRoleDTO dto);

}
